package com.designpattern.FactoryMethodPattern;

/**
 * @Author yp
 * @Date 2021-05-26
 * @Description 抽象工厂
 * 提供了创建产品的接口，调用者通过它访问具体工厂的工厂方法
 **/

public interface FoodFactory {
    Food makeFood(String name);
}


/**
 * 具体工厂：主要是实现抽象工厂中的抽象方法，完成具体产品的创建。
 * 子工厂--> 具体创建食物的工厂--> 工厂有很多，比如中国工厂，只需要继承FoodFactory即可，然后实现加工食物的过程
 */
class ChineseFoodFactory implements FoodFactory{

    @Override
    public Food makeFood(String name) {
        System.out.println("中国工厂-->加工食物：" + name);
        return new ChineseFoodA();
    }
}

class AmericanFoodFactory implements FoodFactory{

    @Override
    public Food makeFood(String name) {
        System.out.println("美国工厂-->加工食物：" + name);
        return new AmericanFoodA();
    }
}